1
Il metodo scientifico per l'ottimizzazione di HIP
AI024Lesson 7
00:00

L'ottimizzazione nell'ambiente HIP deve essere trattata come una disciplina empirica rigorosa piuttosto che una serie di supposizioni intuitive. Adottando un flusso di lavoro sistematico, gli sviluppatori garantiscono che ogni modifica al codice sia giustificata dai dati, spostando l'ingegneria delle prestazioni lontano dalla "superstizione dell'ottimizzazione" verso un ciclo ripetibile e scientifico di ipotesi e verifica.

Il flusso di lavoro a 6 passi

Le linee guida per le prestazioni di HIP raccomandano una sequenza sistematica:

  1. Misurare un valore di riferimento: Determinare il tempo di esecuzione corrente e la produttività.
  2. Profilare il programma: Utilizzare rocprofv3 per raccogliere i contatori hardware.
  3. Identificare il collo di bottiglia: Determinare se sei limitato dal calcolo, dalla memoria o dalla latenza.
  4. Applicare ottimizzazioni mirate: Concentrarsi solo sul collo di bottiglia identificato.
  5. Rimeasure: Verificare se il cambiamento ha effettivamente migliorato le prestazioni.
  6. Iterare: Ripetere il processo fino a raggiungere gli obiettivi.
1. Misura il valore di riferimento2. Profila3. Identifica il collo di bottiglia4. Ottimizza

Evita le superstizioni sull'ottimizzazione

I guadagni prestazionali dovrebbero essere risultati riproducibili da interazioni specifiche con l'hardware. Evita queste anti-pattern:

  • Modificare il codice del kernel prima di misurare le prestazioni correnti.
  • Regolare la dimensione del blocco senza sapere se il kernel è limitato dalla memoria.
  • Cercare numeri di occupazione senza prova che abbiano importanza per il carico di lavoro specifico.
main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>